
; Parametros para un tipo de funcion
%define SRC [ebp+8]
%define DST [ebp+12]
%define W [ebp+16]
%define H [ebp+20]
%define DX [ebp+24]
%define DY [ebp+28]

; Parametros para otro tipo de funcion
%define SRC1 [ebp+8]
%define SRC2 [ebp+12]
%define DST_M [ebp+16]
%define WW [ebp+20]
%define HH [ebp+24]


; Macros de convencion C
%macro Entrar 0
	push ebp
	mov ebp,esp
	pusha
%endmacro

%macro Salir 0
	popa
	pop ebp
	ret
%endmacro


; Macros relacionadas con la aplicacion de mascaras
%include "macros.asm"

; filtros que exporto
section .text

	; void asmSobel(const char* src, char* dst, int ancho, int alto, int xorder, int yorder);
	global asmSobel

	; void asmPrewitt(const char* src, char* dst, int ancho, int alto, int xorder, int yorder);
	global asmPrewitt

	; void asmRoberts(const char* src, char* dst, int ancho, int alto, int xorder, int yorder);
	global asmRoberts


	; void asmWTF(const char* src, char* dst, int ancho, int alto);
	global asmWTF

	; void asmMono(const char* src, char* dst, int ancho, int alto);
	global asmMono

	; void andFilter(const char* src1, const char* src2, char* dst, int ancho, int alto);
	global andFilter

	; void nandFilter(const char* src1, const char* src2, char* dst, int ancho, int alto);
	global nandFilter


	; void merge(const char* src1, const char* src2, char* dst, int ancho, int alto);
	global merge

	; void suma(const char* src1, const char* src2, char* dst, int ancho, int alto);
	global suma


; implementacion de los filtros
%include "sobel.asm"
%include "prewitt.asm"
%include "roberts.asm"
%include "otros.asm"

